import axios from 'axios'
import { ElMessage } from 'element-plus'
import router from '../router'
//创建axios实例对象
const request = axios.create({
  baseURL: '/api', //请求的基准路径
  timeout: 600000 //请求超时时间10分钟
})
//axios的响应 response 拦截器
request.interceptors.response.use(
  (response) => { //成功回调
    return response.data	// 直接返回后端响应的 data 字段
  },
  (error) => { //失败回调
    //如果返回401状态码，则跳转到登录页面
    if(error.response.status === 401){
      ElMessage.error('登录超时，请重新登录')
      router.push('/')
    }
    if(error.response.status === 403){
      ElMessage.error('账号已禁用')
      router.push('/')
    }else{
      ElMessage.error('接口访问异常')
    }
    return Promise.reject(error)
  }
)

//axios的请求 request 拦截器，每次请求前设置请求头token
request.interceptors.request.use(
  (config) => { //成功回调
    const user = JSON.parse(localStorage.getItem('hrInfo'))
    //设置请求头
    if(user && user.token && user.userType){
      config.headers.hrToken = user.token
    }
    return config
  },
  (error) => { //失败回调
    return Promise.reject(error)
  }
)
export default request